home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / pmode / qfml11 / example1.cpp < prev    next >
C/C++ Source or Header  |  1995-02-08  |  2KB  |  84 lines

  1. /*********************************************************************
  2. ** QFML DEMO :
  3. **   ALTHOUGH THIS LISTING CAN'T BE MODIFIED, IT SHOWS HOW QFM WORKS.
  4. **   JUST SHOWS HOW TO USE SOME POKE'S AND PEEK'S.
  5. **
  6. ** (C) RENDER OF ACC TEAM (1995)
  7. *********************************************************************/
  8.  
  9. #include "qfml.h"
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12.  
  13. #define dword unsigned long int
  14.  
  15. void
  16. main(void)
  17. {
  18.     dword First_addr;                 // Keeps starting QFM's memory address
  19.     dword MCGA_off;                   // Plane address of video mem.
  20.     dword num_ks;                     // Keeps the amount of K's reserved
  21.  
  22.     // First of all start QFM before leaving textmode
  23.     if (StartPL()) exit(1);
  24.  
  25.     // Then open the whole mem after the first Megabyte.
  26.     if (OpenMem()) {
  27.       LeavePL();           // Leave QFM mode before leaving your code.(ALWAYS)
  28.       exit(1);
  29.     }
  30.  
  31.     // We get the amount of memory available
  32.     num_ks=GiveAmo();
  33.     if (num_ks<1) {        // We need a minimum of 1 k
  34.       CloseMem();          // Close mem. before leavinf QFM. (ALWAYS)
  35.       LeavePL();           // Leave QFM mode before leaving your code.(ALWAYS)
  36.     }
  37.     printf ("Available memory after first Mgb. (Kbytes):%lu\n",num_ks);
  38.  
  39.     // Then we need the starting address of this block in plane
  40.     // memory. Observe it will always be after position 1048576 (1Mb)
  41.     First_addr=GiveSta();
  42.  
  43.  
  44.     // First Poke data and then peek it to check it
  45.     Pokeb(First_addr+10,101);
  46.     printf ("Peekb(%lu)=%d\n",First_addr+10,Peekb(First_addr+10));
  47.  
  48.     Pokew(First_addr+10,0xFFFF);
  49.     printf ("Peekw(%lu)=%u\n",First_addr+10,Peekw(First_addr+10));
  50.  
  51.     Pokedw(First_addr+10,0x00010001);
  52.     printf ("Peekdw(%lu)=%lu\n",First_addr+10,Peekdw(First_addr+10));
  53.  
  54.  
  55.     // Close openned mem. before living
  56.     CloseMem();
  57.  
  58.     // Leave QFM before termination
  59.     LeavePL();
  60. }
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.